﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Abp.Application.Services;
using FwProject.Shop.Dto;
using FwProject.ShopApplication;
using X.PagedList;

namespace FwProject.Shop
{
    public interface IShopTypeAppService : IApplicationService
    {
        #region 后台管理
        /// <summary>获取一级分类列表</summary>
        Task<LayerDataBaseDto> GetPagedListAsync(string keyword);
        /// <summary>获取二级分类列表</summary>
        Task<LayerDataBaseDto> GetPagedList2Async(Guid Id, string keyword);
        /// <summary>获取一条分类信息</summary>
        Task<ShopTypeDto> GetByIdAsync(Guid id);

        Task<List<ShopTypeDto>> GetParentListAsync();

        Task<List<ShopTypeDto>> GetChildListByParentIdAsync(Guid parentid);

        Task<Guid> CreateAsync(ShopTypeInput input);

        Task<ShopTypeInput> GetByIdEnterAsync(Guid id);
        Task ModifyAsync(Guid id, ShopTypeInput input);

        Task DeleteAsync(string ids);

        Task<string[]> GetCompleteTypeNameAsync(Guid id);
        /// <summary>
        /// 搜索引擎需要类别
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        AppShopTypeDto GetSerachType(Guid id);
        /// <summary>
        ///获取所有的分类
        /// </summary>
        /// <param name="id">类别id</param>
        /// <returns>不给参数返回所有类别</returns>
        Task<List<AppShopTypeDto>> GetAppAllListType(Guid? id);

        /// <summary>
        /// 切换启用
        /// </summary>
        /// <param name="id"></param>
        /// <param name="active"></param>
        /// <returns></returns>
        Task<string> SwitchActive(Guid id, bool active);

        Task<List<ShopTypeOutputDto>> GetListAsync(Guid? id,string keyword);
        #endregion
    }
}
